The present invention relates to programmable report generators, and more particularly to a printer that, in addition to serving as a conventional printer, may also be programmed to analyze incoming data, to extract significant data from the incoming data, and to generate documents and/or reports presenting that data in an attractive and useful manner, varying the type and number of reports generated in accordance with the nature of the data. The present invention is particularly useful in a networked environment where modern desktop publishing systems may be on the same network with mini- and mainframe computers programmed with xe2x80x9clegacyxe2x80x9d or purchased software that generates unattractive, character-oriented reports. The invention is also useful in environments where only such mini- and mainframe computers are present.
Just a few years ago, most printers were inflexible devices that could only print letters, numbers, punctuation, and a limited number of symbols of a fixed size, or at best a very limited number of sizes and fonts. At the low end, dot matrix printers and spinning wheel printers predominated. Line printers were used to print reports from mini- and mainframe computers.
The introduction of the laser printer in the late 1980s was followed shortly thereafter by the development and introduction of highly flexible printer software engines that could print not only any type and size of character font but also graphic images as well as arbitrarily sized, rotated, and positioned lines, circles, and other geometric shapes. Adobe introduced Postscript and then Postscript II. Hewlett Packard introduced several generations of PCL. Prescribe was also developed for Kyocera printers.
Printers equipped with these printer control languages could produce reports of arbitrary complexity, and some printers were designed to accept several different printer control languages. However, no matter how sophisticated the printer languages became, these printers were still merely unintelligent servants of the computers that fed them data. They had to be fully instructed, with the instructions couched in the proper printer control language, on all aspects of how to go about creating any particular report or document. In the emerging field of personal computers, the emergence of Desktop Publishing software and third generation word processing software and office suites enabled individuals creating reports, brochures, and the like to take full advantage of the flexibility and power of these new printers and their control languages.
But in the field of business management, where mini- and mainframe computers predominated, it remained impractical to utilize the full power of these new printers. Much of the legacy software and leased or purchased software. found on these machines was designed to generate simple, text-oriented reports without fancy fonts and graphics on an earlier generation of printers. There is no cost-effective way in which much of this legacy and leased software could be upgraded to take advantage of the new printer capabilities, and accordingly most reports such as invoices, financial reports, and the like continue to be prepared with the traditional character-oriented formats that seem so unattractive and difficult to comprehend in this day of desktop publishing.
Some systems are known which can be set up to contain simple blank form documents, and to extract data segments from data flowing into a printer and move that data into blank spaces in the form documents. However, these systems are again performing rigidly-defined, simple tasks of form document completion and do not prepare highly customized reports after analyzing the data in an intelligent manner.
Accordingly, it is an object of the present invention to produce a printer that has the ability to analyze incoming data, extracting meaningful data and discarding the rest, and determining from the data what types and sizes of and numbers of documents and reports to generate.
It is a further object of the present invention to produce such a printer that, having analyzed the incoming data and extracted meaningful data therefrom, can then generate the specifications for a report of arbitrary complexity, tailored in accordance with the nature of the extracted data, and provide that specification to the printer""s printing engine formatted in the printer""s printer control language.
It is yet another object to achieve the above objects without in any way detracting from or interfering with the printer""s ability to function in the normal manner when called upon by personal computers operating under the control of desktop publishing and word processing software and sharing the same network and printing facilities with mini- and mainframe computers programmed with legacy software or prepackaged, inflexible software and requiring the services of the printer""s data analyzer, data extractor, and report generator.
Another object is to achieve such a printer in which the data analysis and report generation aspects of the printer can be quickly and simply reprogrammed to change the nature of the reports generated.
Yet another object is the envelopment of a meta-language for defining data analysis and extraction and report generation steps that are compatible with many different printers and printer control languages such that the meta-language may be intermixed with printer control commands to form report and document templates that can govern a printer""s data extraction and document and report generation steps and that may be incorporated into different types of printers having different printer control languages.
Briefly summarized, these and other objects and advantages of the present invention are achieved in a printer having integrated within its mechanisms an incoming data analyzer, a data extractor, and a report generator which coexist compatibly with a conventional printer engine and printer or command language interpreter. The analyzer, extractor, and generator process meta-language commands that are embedded within document templates containing the meta-language commands intermixed with printer control commands and data. In the resultant integrated machine, the printer responds normally to incoming document definitions drafted in the printer control language of the printer engine, but the data analyzer continuously monitors the incoming information. When the data analyzer detects, within the incoming information, new document templates containing data analysis, extraction, and report generation meta-commands, the analyzer captures and stores these templates in the printer system""s template memory for future use. At a later time, when the data analyzer detects incoming data that corresponds to and triggers the execution of one of the stored document templates, the data analyzer retrieves the corresponding document template and executes the meta-language commands that it contains, thereby transforming the generalized document template into highly customized documents or reports containing printer control commands intermixed with data extracted from the incoming data. The documents or reports actually generated are thus selected, arranged, and modified in accordance with and under the control of the extracted incoming data such that completely customized reports and documents are achieved without the need to have the computer from which the data flows generate the report specifications. In this manner, the entire burden of report generation and customization is shifted away from the computer and placed upon the printer.
These and other objects of the present invention are apparent in the drawings and in the detailed description which follows. The points of novelty that characterize the present invention are pointed out with particularity in the claims annexed to and forming a part of this specification.